#include <thread>
#include <iostream>
#include <unistd.h>
#include <mutex>  // 互斥锁类的头文件
using namespace std;

mutex mtx;  // 创建互斥锁，保护共享资源cout对象

// g++ -pthread thread_8.cpp -o thread_8
// 普通函数
void func(int bh, const string& str){
   for(int i = 1; i <= 10; i++){
    mtx.lock();  // 申请加锁
    cout << "第" << i << "次表白：亲爱的" << bh << "号, " << str << endl;
    mtx.unlock();  // 解锁
    usleep(1000000);  // 睡眠 1000000 微秒（1 秒）
   }
}

int main()
{
    // 用普通函数创建线程
   thread t1(func,1,"我是一只傻傻鸟。");
   thread t2(func,2,"我是一只小小鸟。");
   thread t3(func,3,"我是一只傻傻鸟。");
   thread t4(func,4,"我是一只小小鸟。");
   thread t5(func,5,"我是一只小小鸟。");
   
   

   t1.join();   // 回收线程t1的资源
   t2.join();   // 回收线程t2的资源
   t3.join();   // 回收线程t3的资源
   t4.join();   // 回收线程t4的资源
   t5.join();   // 回收线程t5的资源
}